home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / man / cmds.fmt / zwgc.man < prev    next >
Text File  |  1992-11-23  |  41KB  |  1,123 lines

  1.  
  2.  
  3.  
  4. ZWGC                      User Commands                      ZWGC
  5.  
  6.  
  7.  
  8. NNAAMMEE
  9.      zwgc - Zephyr Windowgram Client program
  10.  
  11. SSYYNNOOPPSSIISS
  12.      zzwwggcc [ -reenter ] [ -nofork ] [ -ttymode ] [ -f _f_i_l_e_n_a_m_e ] [
  13.      -subfile _f_i_l_e_n_a_m_e ] [ -default _p_o_r_t_n_a_m_e ] [ -disable _p_o_r_t_-
  14.      _n_a_m_e ] ... [ output driver options ] [ X Toolkit options...
  15.      ]
  16.  
  17. DDEESSCCRRIIPPTTIIOONN
  18.      _Z_w_g_c is the main _z_e_p_h_y_r(_1) client.  It is responsible for
  19.      receiving selected zephyr notices on behalf of the user,
  20.      formatting them, and displaying them using one or more of
  21.      the output devices.
  22.  
  23.  
  24.      SSeelleeccttiioonn ooff ZZeepphhyyrr NNoottiicceess
  25.  
  26.      _Z_w_g_c subscribes to various notice classes and instances on
  27.      behalf of the user.  Only notices in the subscription list
  28.      will be received.  The subscription list is composed of the
  29.      default subscriptions (stored on the server), the user's
  30.      subscriptions file, and any subscriptions made using
  31.      _z_c_t_l(1).  The user's subscription file defaults to
  32.      $_H_O_M_E/._z_e_p_h_y_r._s_u_b_s, or it can be specified with the -subfile
  33.      option.  If "-" is specified as the subscription filename,
  34.      the subscriptions will be read from standard input.
  35.  
  36.  
  37.      The _z_c_t_l command is used to manipulate and change subscrip-
  38.      tions.  See the _z_c_t_l(1) man page for details.
  39.  
  40.  
  41.      ZZeepphhyyrr DDeessccrriippttiioonn FFiilleess
  42.  
  43.      _Z_w_g_c formats its output messages according to the commands
  44.      in its description file.  The user's description file
  45.      ($_H_O_M_E/._z_w_g_c._d_e_s_c by default, or whatever is specified by
  46.      -f) is read, or the system file is read if the user's does
  47.      not exist.
  48.  
  49.      Every time a notice is received, _z_w_g_c runs through the
  50.      description file, and executes the appropriate commands.
  51.  
  52.  
  53.      ZZeepphhyyrr DDeessccrriippttiioonn FFiillee SSyynnttaaxx
  54.  
  55.      A description file is simply a list of commands.  Whitespace
  56.      (spaces, tabs, and line breaks) is used to separate tokens.
  57.      The type and amount of whitespace separating tokens is
  58.      irrelevant.  Comments can be delimited by # and newline (for
  59.      line-oriented comments, e.g. "# this is a comment" on a line
  60.  
  61.  
  62.  
  63. MIT Project Athena      November 30, 1989                       1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ZWGC                      User Commands                      ZWGC
  71.  
  72.  
  73.  
  74.      by itself) or by /* and */ (e.g. "/* this is a comment */").
  75.  
  76.  
  77. DDEESSCCRRIIPPTTIIOONN LLAANNGGUUAAGGEE
  78.      EExxpprreessssiioonnss
  79.      Expressions are used by certain commands.  They are composed
  80.      from string literals, variable references, function calls,
  81.      and operators.  Parentheses can be used anywhere in an
  82.      expression to group expressions or increase readability.
  83.  
  84.      String literals are specified by putting the contents in
  85.      "double quotes".
  86.  
  87.      Variables are set using the sseett command (see "COMMANDS",
  88.      below).  They are referenced in an expression by using the
  89.      form $_v_a_r_n_a_m_e.  Some variables are set by default for each
  90.      notice.  All other variables retain their values between
  91.      notice interpretations, so that if you set a variable, it
  92.      retains that value until later modified.
  93.  
  94.      Functions are called using a C-like syntax,
  95.      ffnnaammee(_e_x_p_r_1,_e_x_p_r_2), where ffnnaammee is the function name and
  96.      _e_x_p_rnn are the arguments.
  97.  
  98.      Binary operators use infix notation, such as "a == b".
  99.  
  100.      Some commands use an expression list (exprlist), which is
  101.      simply a set of expressions separated by whitespace (e.g.
  102.      $var1 "lit1" $var2).
  103.  
  104.  
  105.      DDeeffaauulltt vvaarriiaabblleess
  106.  
  107.      The following variables are always available:
  108.  
  109.      11,, ......
  110.           Numeric variables are assigned values corresponding to
  111.           that field in the notice (the body of each notice is
  112.           conceptually an array of fields, each terminated with a
  113.           null character).  If the number is greater than the
  114.           number of fields actually in the notice, the value is
  115.           "".  For example, the standard zwrite messages have two
  116.           fields: $1 is the signature, and $2 is the text of the
  117.           message.
  118.  
  119.      aauutthh An indication of the authenticity of the notice.
  120.           ``yes'' means the notice is authentic, ``no'' means it
  121.           is not, and ``forged'' means that the message claimed
  122.           to be authentic but the verification of the claim
  123.           failed.  The ``forged'' indication usually appears when
  124.           a user has changed his Kerberos tickets with _k_i_n_i_t(1)
  125.           but has not run ``zctl sub'' to register this change
  126.  
  127.  
  128.  
  129. MIT Project Athena      November 30, 1989                       2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ZWGC                      User Commands                      ZWGC
  137.  
  138.  
  139.  
  140.           with the Zephyr servers.
  141.  
  142.      ccllaassss
  143.           The class of the current notice.
  144.  
  145.      ddaattee The date on which the notice was sent.
  146.  
  147.      ddeeffaauulltt
  148.           The default output format for the current notice
  149.  
  150.      eerrrroorr
  151.           An error message from the port read/write commands.
  152.  
  153.      ffrroommhhoosstt
  154.           The full name of the host from which the notice appears
  155.           to have been sent. _T_h_i_s _i_s _n_o_t _f_u_l_l_y _r_e_l_i_a_b_l_e, as the
  156.           information used to determine this hostname is not
  157.           guaranteed to be correct (even for authentic messages).
  158.  
  159.      ffuullllsseennddeerr
  160.           The notice sender's name, including the zephyr realm
  161.           name.
  162.  
  163.      iinnssttaannccee
  164.           The instance of the current notice.
  165.  
  166.      kkiinndd The kind of notice.
  167.  
  168.      mmeessssaaggee
  169.           The full text of the message, with nulls converted to
  170.           newlines.
  171.  
  172.      nnuummbbeerr__ooff__ffiieellddss
  173.           The number of fields in the message (a string represen-
  174.           tation of a decimal number).
  175.  
  176.      ooppccooddee
  177.           The opcode of the current notice.
  178.  
  179.      oouuttppuutt__ddrriivveerr
  180.           The name of the output driver in use.
  181.  
  182.      ppoorrtt The port from which the notice was sent.
  183.  
  184.      rreeaallmm
  185.           The local zephyr realm.
  186.  
  187.      rreecciippiieenntt
  188.           The recipient for the current notice.  If the notice is
  189.           a multicast (sent to several people), the recipient is
  190.           set to ``*''.
  191.  
  192.  
  193.  
  194.  
  195. MIT Project Athena      November 30, 1989                       3
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ZWGC                      User Commands                      ZWGC
  203.  
  204.  
  205.  
  206.      sseennddeerr
  207.           Usually a shortened version of fullsender.  If the
  208.           realm of the sender is equal to the realm of the reci-
  209.           pient, _s_e_n_d_e_r omits the realm name.
  210.  
  211.      ttiimmee The time of day at which the notice was sent.
  212.  
  213.      uusseerr The full zephyr name of the user (e.g.
  214.           marc@ATHENA.MIT.EDU).
  215.  
  216.      vveerrssiioonn
  217.           The current version of _z_w_g_c.
  218.  
  219.      zzeepphhyyrr__vveerrssiioonn
  220.           The protocol version of the notice.
  221.  
  222.      All of these variables (except for error, output_driver, and
  223.      version) are re-set before each notice is processed.
  224.  
  225.  
  226.      FFuunnccttiioonnss
  227.  
  228.      Following is a list of functions available for use in the
  229.      description file.
  230.  
  231.      bbuuffffeerr()
  232.           The contents of the current output buffer.
  233.  
  234.      ddoowwnnccaassee(_e_x_p_r)
  235.           Returns the value of _e_x_p_r, converted to lower case.
  236.  
  237.      ggeett(_e_x_p_r)
  238.           Returns a line from the port named _e_x_p_r.  If there is
  239.           no text waiting on the port (e.g. the program connected
  240.           to the port has not printed any output), this function
  241.           will wait until it can read a line of text from the
  242.           port.
  243.  
  244.      ggeetteennvv(_e_x_p_r)
  245.           Returns the value of the environment variable _e_x_p_r, or
  246.           the empty string if it does not exist.
  247.  
  248.  
  249.      llaannyy(_e_x_p_r_1, _e_x_p_r_2), rraannyy(_e_x_p_r_1, _e_x_p_r_2)
  250.           Return a number of characters equal to the length of
  251.           _e_x_p_r_2 from the beginning (llaannyy) or end (rraannyy) of _e_x_p_r_1
  252.           (e.g. lany("1234567890","foo") would return "123").  If
  253.           _e_x_p_r_1 is a variable reference, the variable is modified
  254.           to remove the characters returned.  If _e_x_p_r_2 is longer
  255.           than _e_x_p_r_1, the value of _e_x_p_r_1 is returned (and _e_x_p_r_1
  256.           is set to "", if a variable).
  257.  
  258.  
  259.  
  260.  
  261. MIT Project Athena      November 30, 1989                       4
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ZWGC                      User Commands                      ZWGC
  269.  
  270.  
  271.  
  272.      llbbrreeaakk(_e_x_p_r_1, _e_x_p_r_2), rrbbrreeaakk(_e_x_p_r_1, _e_x_p_r_2)
  273.           _E_x_p_r_2 defines a set of characters.  The function
  274.           returns the longest initial (llbbrreeaakk) or final (rrbbrreeaakk)
  275.           string from _e_x_p_r_1 composed of characters _n_o_t in this
  276.           set (e.g. lbreak("characters", "tuv") would return
  277.           "charac").  If _e_x_p_r_1 is a variable reference, the vari-
  278.           able is modified to remove the characters returned.  If
  279.           no characters in _e_x_p_r_2 are in _e_x_p_r_1, then _e_x_p_r_1 is
  280.           returned (and _e_x_p_r_1 is set to "", if a variable).
  281.  
  282.      llssppaann(_e_x_p_r_1, _e_x_p_r_2), rrssppaann(_e_x_p_r_1, _e_x_p_r_2)
  283.           These functions are the negation of the bbrreeaakk func-
  284.           tions; the returned string consists of characters _i_n
  285.           the set defined by _e_x_p_r_2
  286.  
  287.      pprrootteecctt(_e_x_p_r)
  288.           Returns a string which will be evaluated identically to
  289.           _e_x_p_r, but will not affect any surrounding environments.
  290.           That is, any characters which could close outside
  291.           environments are quoted, and any environments in _e_x_p_r
  292.           which are not closed at the end are closed.
  293.  
  294.      ssuubbssttiittuuttee(_e_x_p_r)
  295.           Evaluates variable references of the form $_v_a_r_i_a_b_l_e in
  296.           expr and converts $$ to $.
  297.  
  298.      uuppccaassee(_e_x_p_r)
  299.           Returns the value of _e_x_p_r, converted to upper case.
  300.  
  301.      vveerrbbaattiimm(_e_x_p_r)
  302.           Returns a string that will be displayed exactly as _e_x_p_r
  303.           looks.  Anything which could be mistaken for an
  304.           environment is quoted.
  305.  
  306.      zzvvaarr(_e_x_p_r)
  307.           Returns the value of the zephyr variable _e_x_p_r, or the
  308.           empty string if it does not exist.  [Zephyr variables
  309.           can be set and examined with _z_c_t_l(1).]
  310.  
  311.  
  312.      OOppeerraattoorrss
  313.  
  314.      Following is a list of operators which can be used in the
  315.      description file to compose expressions:
  316.  
  317.      _e_x_p_r_1 ++ _e_x_p_r_2
  318.           String concatenation of _e_x_p_r_1 and _e_x_p_r_2
  319.  
  320.      _e_x_p_r_1 ==== _e_x_p_r_2
  321.           True if the two expressions are equal, false otherwise.
  322.  
  323.      _e_x_p_r ==~~ _e_x_p_r_2
  324.  
  325.  
  326.  
  327. MIT Project Athena      November 30, 1989                       5
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. ZWGC                      User Commands                      ZWGC
  335.  
  336.  
  337.  
  338.           True if the regular expression pattern _e_x_p_r_2 matches
  339.           _e_x_p_r_1.
  340.  
  341.      _e_x_p_r_1 !!~~ _e_x_p_r_2
  342.           Negation of "=~".
  343.  
  344.      _e_x_p_r_1 !!== _e_x_p_r_2
  345.           Negation of "=="
  346.  
  347.      _e_x_p_r_1 aanndd _e_x_p_r_2, _e_x_p_r_1 && _e_x_p_r_2
  348.           True if _e_x_p_r_1 and _e_x_p_r_2 are both true.
  349.  
  350.      _e_x_p_r_1 oorr _e_x_p_r_2, _e_x_p_r_1 || _e_x_p_r_2
  351.           True if either of _e_x_p_r_1 or _e_x_p_r_2 are true.
  352.  
  353.      !! _e_x_p_r_1, nnoott _e_x_p_r_1
  354.           The logical negation of _e_x_p_r_1.
  355.  
  356.  
  357.      CCoommmmaannddss
  358.  
  359.      Following is a list of the commands usable in the descrip-
  360.      tion language:
  361.  
  362.      aappppeennddppoorrtt _e_x_p_r_1 _e_x_p_r_2
  363.           Creates a port called _e_x_p_r_1.  All output to the port
  364.           will be appended to the file _e_x_p_r_2.  There is no input.
  365.           If the file is created, its mode is set to read-write,
  366.           owner only (no access for others).
  367.  
  368.      bbrreeaakk
  369.           Exits the innermost if, case, or while block.
  370.  
  371.      ccaassee _e_x_p_r_1 [ ((mmaattcchh _e_x_p_r [,_e_x_p_r ...]) | ddeeffaauulltt) _c_o_m_m_a_n_d_s ] ... eennddccaassee
  372.           Evaluates _e_x_p_r_1.  Then, each of the match expressions
  373.           is evaluated in order.  The first time an expression
  374.           matches _e_x_p_r_1, then the body of commands under it is
  375.           executed, and the rest of the case statement is
  376.           skipped.  This compare is case-insensitive.  default
  377.           always matches, so it should always appear as the last
  378.           set of commands.  See the default description file for
  379.           an example of use.
  380.  
  381.      cclleeaarrbbuuff
  382.           Clears the output buffer (see below for details on
  383.           buffering).
  384.  
  385.      cclloosseeiinnppuutt _e_x_p_r
  386.           Closes the file associated with _e_x_p_r.
  387.  
  388.      cclloosseeoouuttppuutt _e_x_p_r
  389.           Sends an EOF (end-of-file) to the process if _e_x_p_r was a
  390.  
  391.  
  392.  
  393. MIT Project Athena      November 30, 1989                       6
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. ZWGC                      User Commands                      ZWGC
  401.  
  402.  
  403.  
  404.           port created by execport, or closes the file if it was
  405.           created by outputport or appendport.
  406.  
  407.      cclloosseeppoorrtt _e_x_p_r
  408.           Closes both input and output of _e_x_p_r as defined above.
  409.  
  410.      ffiieellddss _v_a_r_i_a_b_l_e_1 ...
  411.           sets the list of variables to be equal to the fields in
  412.           the notice.  If there are more variables than fields,
  413.           the extra variables are left empty.
  414.  
  415.      eexxeecc _e_x_p_r_l_i_s_t
  416.           Executes a program without any input or output.  A com-
  417.           mand named by _e_x_p_r_l_i_s_t is executed.  Each expression is
  418.           used as an argument to the program; the first expres-
  419.           sion names the program (it may be either an absolute
  420.           pathname, or a program name; the user's PATH is
  421.           searched to find simple program names).
  422.  
  423.      eexxeeccppoorrtt _e_x_p_r_1 _e_x_p_r_l_i_s_t
  424.           Creates a port called _e_x_p_r_1.  A command named by
  425.           _e_x_p_r_l_i_s_t is executed, as described above for eexxeecc.  All
  426.           output to the port is sent to the standard input of the
  427.           process.  Reading from the port will return the stan-
  428.           dard output of the process.
  429.  
  430.      eexxiitt Completes processing of the current notice.  The
  431.           remainder of the description file is ignored after exe-
  432.           cution of this command.
  433.  
  434.      iiff _e_x_p_r_1 tthheenn _c_o_m_m_a_n_d_s_1 [eellsseeiiff _e_x_p_r_2 tthheenn _c_o_m_m_a_n_d_s_2] ... [eellssee _c_o_m_m_a_n_d_s_n] eennddiiff
  435.           If _e_x_p_r_1 evaluates to true, execute _c_o_m_m_a_n_d_s_1, _e_t_c. [_A
  436.           _c_o_n_d_i_t_i_o_n_a_l _c_o_n_s_t_r_u_c_t, _s_i_m_i_l_a_r _t_o _t_h_e _c_o_n_s_t_r_u_c_t_s _i_n _t_h_e
  437.           _C _s_h_e_l_l (_c_s_h).]
  438.  
  439.      iinnppuuttppoorrtt _e_x_p_r_1 _e_x_p_r_2
  440.           Creates a port called _e_x_p_r_1.  All input from the port
  441.           comes from the file _e_x_p_r_2.  There is no output.
  442.  
  443.      nnoooopp does nothing
  444.  
  445.      oouuttppuuttppoorrtt _e_x_p_r_1 _e_x_p_r_2
  446.           Creates a port called _e_x_p_r_1.  The file _e_x_p_r_2 will be
  447.           truncated, or created if it does not exist.  All output
  448.           to the port will be appended to the file _e_x_p_r_2.  There
  449.           is no input.  If the file is created, its mode is set
  450.           to read-write, owner only (no access for others).
  451.  
  452.      pprriinntt _e_x_p_r_1 ...
  453.           adds the values of the expressions to the current out-
  454.           put buffer.  The values of the expressions are
  455.           separated by spaces in the output.
  456.  
  457.  
  458.  
  459. MIT Project Athena      November 30, 1989                       7
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. ZWGC                      User Commands                      ZWGC
  467.  
  468.  
  469.  
  470.      ppuutt [_e_x_p_r [_e_x_p_r_l_i_s_t]]
  471.           Sends data to a port.  If _e_x_p_r is provided, then it is
  472.           used as the port, otherwise the port used is the port
  473.           corresponding to the default output device.  If
  474.           _e_x_p_r_l_i_s_t is provided, the expressions in the list are
  475.           sent to the port, separated by spaces.  If it is omit-
  476.           ted, then the contents of the output buffer are sent as
  477.           the data.
  478.  
  479.      sseett _v_a_r_i_a_b_l_e == _e_x_p_r
  480.           sets _v_a_r_i_a_b_l_e equal to _e_x_p_r.  Variable can later be
  481.           referenced by $_v_a_r_i_a_b_l_e.
  482.  
  483.      sshhooww _t_e_x_t eennddsshhooww
  484.           Appends text to the output buffer.  This command is
  485.           special, because the string does not need to be quoted.
  486.           Whitespace at the beginning or end of the lines of text
  487.           is ignored.  The _e_n_d_s_h_o_w must appear as the first token
  488.           on a line (it may only be preceded on that line by whi-
  489.           tespace).  Variable substitutions and formatting com-
  490.           mands (but not expressions or functions) are processed
  491.           in the text.  Example:
  492.           show
  493.              this is some text
  494.              from: $sender
  495.           endshow
  496.  
  497.      wwhhiillee _e_x_p_r ddoo _s_t_a_t_e_m_e_n_t_s eennddwwhhiillee
  498.           Executes _s_t_a_t_e_m_e_n_t_s until _e_x_p_r is false.
  499.  
  500.  
  501. PPOORRTTSS
  502.      Ports are an abstraction encompassing all I/O forms of which
  503.      zwgc is capable.  There are pre-existing output ports
  504.      corresponding to each of the output devices, and more ports
  505.      can be created with the port commands described above.
  506.  
  507.  
  508. OOUUTTPPUUTT
  509.      The output is usually collected in the _o_u_t_p_u_t _b_u_f_f_e_r and
  510.      saved until a _p_u_t command sends the output to an output dev-
  511.      ice (such as an X display or a terminal).  The output buffer
  512.      is implicitly cleared after each notice is completely pro-
  513.      cessed.
  514.  
  515.  
  516.      Output devices are implemented as output ports.  A message
  517.      is displayed in a device-dependent manner when a string is
  518.      output to the port corresponding to the output device.  For-
  519.      matting commands are embedded in the text as @ commands of
  520.      the form @command(text).  Command names are case-insensitive
  521.      and consist of alphanumeric characters and underscores.
  522.  
  523.  
  524.  
  525. MIT Project Athena      November 30, 1989                       8
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. ZWGC                      User Commands                      ZWGC
  533.  
  534.  
  535.  
  536.      Valid brackets are () [] {} and <>.  If the command name is
  537.      empty (such as in ``@@((ffoooo))''), then a new environment with
  538.      no changes is created (This is useful to temporarily change
  539.      some parameter of the output, such as the font).
  540.  
  541.      The following output devices are supported:
  542.  
  543.      stdout
  544.           Sends the string to standard output exactly as is.
  545.  
  546.      stderr
  547.           Sends the string to standard error exactly as is.
  548.  
  549.      plain
  550.           Sends the string with all formatting environments
  551.           removed to standard output.
  552.  
  553.      tty  Does formatting on the message according to @ commands
  554.           embedded in the text.  The output, with appropriate
  555.           mode-changing sequences, is sent to the standard out-
  556.           put.  The appropriate characteristics of the display
  557.           are taken from the TERMCAP entry (see _t_e_r_m_c_a_p(5)) for
  558.           the terminal named by the TERM environment variable.
  559.           Supported @ commands are:
  560.                @roman         Roman (plain) letters (turns off
  561.                               all special modes).
  562.                @b or @bold    Bold letters.  If not available,
  563.                               reverse video, else underline.
  564.                @i or @italic  Italic letters (underlining, if
  565.                               available).
  566.                @beep          "bl" termcap entry, else "^G" (beep
  567.                               the terminal); limited to once per
  568.                               message.
  569.                @l or @left    left aligned
  570.                @c or @center  center aligned
  571.                @r or @right   right aligned
  572.  
  573.           Other @-commands are silently ignored.
  574.  
  575.      X    Displays one window per string output to the port.  The
  576.           output is formatted according to @ commands embedded in
  577.           the string.  Supported @ commands are:
  578.                @roman         turns off @italic and @bold
  579.                @b or @bold    turns on boldface
  580.                @i or @italic  turns on italics
  581.                @l or @left    left aligned
  582.                @c or @center  center aligned
  583.                @r or @right   right aligned
  584.                @large         large type size
  585.                @medium        medium type size
  586.                @small         small type size
  587.                @beep          Ring the X bell (limited to once
  588.  
  589.  
  590.  
  591. MIT Project Athena      November 30, 1989                       9
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. ZWGC                      User Commands                      ZWGC
  599.  
  600.  
  601.  
  602.                               per message)
  603.  
  604.                @font          sets the current font to the font
  605.                               specified in the contents of the
  606.                               environment (e.g. @font(fixed)).
  607.                               This will remain in effect for the
  608.                               rest of the environment (a tem-
  609.                               porary change can be achieved by
  610.                               enclosing the font-change in an
  611.                               @(...) environment).  If the named
  612.                               font is not available, the font
  613.                               ``fixed'' is used instead.
  614.  
  615.                @color         sets the color to the color speci-
  616.                               fied in the contents of the
  617.                               environment.  The color name should
  618.                               appear in the X color name data-
  619.                               base.  This color will remain in
  620.                               effect for the rest of the environ-
  621.                               ment.  If the named color is not
  622.                               available, the default foreground
  623.                               color is used.
  624.  
  625.           Any other environment name not corresponding to the
  626.           above environment names will set the current ``sub-
  627.           style.''
  628.  
  629.           The attributes of a given block of text are determined
  630.           by any active environments, evaluated in the context of
  631.           the current style and substyle.
  632.  
  633.           The style is specific to each window.  Its name has
  634.           three dot (``.'') separated fields, which are by
  635.           default the values of the class, instance, and reci-
  636.           pient variables, with all dots changed to underscores
  637.           (``_'') and all letters converted to lowercase.  The
  638.           style can be altered by setting the _s_t_y_l_e variable.
  639.           Note that it mmuusstt aallwwaayyss have exactly two ``.'' charac-
  640.           ters in it.
  641.  
  642.           The substyle is determined by @ commands in the message
  643.           text.
  644.  
  645.           Zwgc variables which the X output device reads are:
  646.                default_X_geometry
  647.                               default geometry for notices, set
  648.                               from resources
  649.                X_geometry     overrides geometry in resource
  650.                               file, if set
  651.                default_X_background
  652.                               default background color for
  653.                               notices, set from resources
  654.  
  655.  
  656.  
  657. MIT Project Athena      November 30, 1989                      10
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. ZWGC                      User Commands                      ZWGC
  665.  
  666.  
  667.  
  668.                X_background   overrides bgcolor in resource file,
  669.                               if set
  670.                style          style, as described above
  671.  
  672.           The expected geometry values are described below.
  673.  
  674.           The fonts and color for a piece of text are determined
  675.           by the styles defined in the X resources file.  The
  676.           following resources relating to text style are used by
  677.           zwgc:
  678.  
  679.                zwgc.style._s_t_y_l_e_n_a_m_e_s.geometry
  680.                          geometry for messages of the specified
  681.                          style
  682.  
  683.                zwgc.style._s_t_y_l_e_n_a_m_e_s.background
  684.                          background color for messages of the
  685.                          specified style
  686.  
  687.                zwgc.style._s_t_y_l_e_n_a_m_e_s.substyle._s_u_b_s_t_y_l_e_n_a_m_e.fontfamily
  688.                          fontfamily name for the specified style
  689.                          and substyle
  690.  
  691.                zwgc.style._s_t_y_l_e_n_a_m_e_s.substyle._s_u_b_s_t_y_l_e_n_a_m_e.foreground
  692.                          foreground color for the specified style
  693.                          and substyle
  694.  
  695.                zwgc.fontfamily._f_o_n_t_f_a_m_i_l_y_n_a_m_e._s_i_z_e._f_a_c_e
  696.                          specifies the fonts for a given fontfam-
  697.                          ily.  _s_i_z_e is one of small, medium, or
  698.                          large, and _f_a_c_e is one of roman, bold,
  699.                          italic, or bolditalic.
  700.  
  701.           The best way to get started in customizing X resources
  702.           for _z_w_g_c is to examine the default application
  703.           resources and other users' resources to understand how
  704.           they specify the default appearance.
  705.  
  706.  
  707. XX RREESSOOUURRCCEESS
  708.      Other X resources used by _z_w_g_c are listed below.  Entries
  709.      like
  710.  
  711.           zwgc*option: value
  712.           Zwgc*option: value
  713.           zwgc.option: value
  714.           *option: value
  715.  
  716.      will work.
  717.  
  718.      An entry labeled with zwgc*option in any of the sources
  719.      takes precedence over Zwgc*option, which takes precedence
  720.  
  721.  
  722.  
  723. MIT Project Athena      November 30, 1989                      11
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. ZWGC                      User Commands                      ZWGC
  731.  
  732.  
  733.  
  734.      over *option entries.  The following sources are searched in
  735.      order:
  736.           command-line arguments (-xrm)
  737.           contents of file named by XENVIRONMENT environment variable
  738.           X server resource database (see _x_r_d_b(1))
  739.           application resources file
  740.  
  741.      Logical values can be ( Yes On True T ) or ( No Off False
  742.      nil ).
  743.  
  744.      OOPPTTIIOONN::        MMEEAANNIINNGG [[ddeeffaauulltt]]::
  745.  
  746.      cursorCode     number of a code from the cursorfont (should
  747.                     be an even integer, see <_X_1_1/_c_u_r_s_o_r_f_o_n_t._h>)
  748.                     to use for the windows.
  749.  
  750.      foreground     Primary foreground color
  751.  
  752.      Foreground     Secondary foreground color (if foreground not
  753.                     set) [BlackPixel is the default if neither is
  754.                     set]
  755.  
  756.      background     Primary background color
  757.  
  758.      Background     Secondary background color (if background not
  759.                     set) [WhitePixel is the default if neither is
  760.                     set]
  761.  
  762.      borderColor    Primary border color
  763.  
  764.      BorderColor    Secondary border color (if borderColor not
  765.                     set) [BlackPixel is the default if neither is
  766.                     set]
  767.  
  768.      pointerColor   Primary mouse pointer color [foreground color
  769.                     is the default if not set]
  770.  
  771.      reverseVideo   (logical) Toggles foreground and background
  772.                     (and border, if it matches foreground or
  773.                     background).
  774.  
  775.      ReverseVideo   Secondary toggle, if reverseVideo is not set.
  776.                     [off is the default if neither is set]
  777.  
  778.      borderWidth    Primary border width selector
  779.  
  780.      BorderWidth    Secondary border width selector (if bor-
  781.                     derWidth is not set) [1 is the default value
  782.                     if neither is set]
  783.  
  784.      internalBorder Primary border between edge and text
  785.  
  786.  
  787.  
  788.  
  789. MIT Project Athena      November 30, 1989                      12
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. ZWGC                      User Commands                      ZWGC
  797.  
  798.  
  799.  
  800.      InternalBorder Secondary selector (if internalBorder not
  801.                     set) [2 is the default value if neither is
  802.                     set]
  803.  
  804.      geometry       Primary POSITION (not size) geometry specif-
  805.                     ier.  The geometry should be of the form
  806.                     "{+|-}x{+|-}y", specifying an (x,y) coordi-
  807.                     nate for a corner of the window displaying
  808.                     the notice.  The interpretation of positive
  809.                     and negative location specifications follows
  810.                     the X conventions.  A special location of `c'
  811.                     for either x or y indicates that the window
  812.                     should be centered along that axis.  Example:
  813.                     a geometry of "+0+c" specifies the window
  814.                     should be at the top of the screen, centered
  815.                     horizontally.
  816.  
  817.      Geometry       Secondary position specifer. [+0+0 is the
  818.                     default if neither is set.]
  819.  
  820.      resetSaver     (logical) Primary value to force screen to
  821.                     unsave when a message first appears.
  822.  
  823.      ResetSaver     (logical) Secondary value to force screen to
  824.                     unsave. [default True]
  825.  
  826.      reverseStack   (logical) Primary value to specify that zwgc
  827.                     should attempt to stack WindowGram windows
  828.                     such that the oldest messages normally show
  829.                     on top.  Some X window managers may silently
  830.                     ignore _z_w_g_c's attempts to restack its win-
  831.                     dows.  This option can cause some unusual
  832.                     interactions with other windows if the user
  833.                     manually restacks either the other windows or
  834.                     the WindowGram windows.
  835.  
  836.      ReverseStack   Secondary value to enable reverse stacking.
  837.                     [default False]
  838.  
  839.      title          (string) Primary window title
  840.  
  841.      Title          Secondary window title [defaults to the last
  842.                     pathname component of the program name, usu-
  843.                     ally "zwgc"]
  844.  
  845.      transient      (logical) Primary value which determines if
  846.                     zephyrgram windows will be created with the
  847.                     WWMM__TTRRAANNSSIIEENNTT__FFOORR property set.  If this
  848.                     resource is true, the property will be set,
  849.                     telling certain windowmanagers to treat
  850.                     zephyrgram windows specially.  For instance,
  851.                     _t_w_m will not put decorations on transient
  852.  
  853.  
  854.  
  855. MIT Project Athena      November 30, 1989                      13
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. ZWGC                      User Commands                      ZWGC
  863.  
  864.  
  865.  
  866.                     windows, _m_w_m will not let you iconify them,
  867.                     and _u_w_m ignores the resource entirely.
  868.  
  869.      Transient      Secondary transient determining value
  870.                     [default False]
  871.  
  872.      minTimeToLive  Primary value which specifies the minimum
  873.                     amount of time (``minimum time to live'') a
  874.                     WindowGram must be on-screen (in mil-
  875.                     liseconds) until it can be destroyed.  This
  876.                     feature is useful to avoid accidentally
  877.                     clicking on new WindowGrams when trying to
  878.                     delete old ones.
  879.  
  880.      MinTimeToLive  Secondary value of ``minimum time to live.''
  881.  
  882.      iconName       (string) Primary icon name
  883.  
  884.      IconName       Secondary icon name [defaults to the last
  885.                     pathname component of the program name, usu-
  886.                     ally "zwgc"]
  887.  
  888.      name           (string) Primary window class name
  889.  
  890.      name           Secondary window class name [defaults to the
  891.                     last pathname component of the program name,
  892.                     usually "zwgc"]
  893.  
  894.      synchronous    (logical) Primary X synchronous mode specif-
  895.                     ier.  On means to put the X library into syn-
  896.                     chronous mode.
  897.  
  898.      Synchronous    Secondary X synchronous mode specifier.
  899.                     [default is `off']
  900.  
  901.      The window class is always "Zwgc".
  902.  
  903. XX BBUUTTTTOONNSS
  904.      Clicking and releasing any button without the shift key
  905.      depressed while the pointer remains inside a WindowGram win-
  906.      dow will cause it to disappear. If the pointer leaves the
  907.      window while the button is depressed, the window does not
  908.      disappear; this provides a way to avoid accidentally losing
  909.      messages.
  910.  
  911.      If the control button is held down while clicking on a Win-
  912.      dowGram, then that WindowGram and all windowgrams under the
  913.      point where the button is released will be erased.
  914.  
  915.      WWAARRNNIINNGG:: If you do this with too many WindowGrams under the
  916.      mouse, it is possible for your subscriptions to be lost.  If
  917.      _z_c_t_l _r_e_t_r_i_e_v_e returns nothing, then issue a _z_c_t_l _l_o_a_d
  918.  
  919.  
  920.  
  921. MIT Project Athena      November 30, 1989                      14
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. ZWGC                      User Commands                      ZWGC
  929.  
  930.  
  931.  
  932.      command to re-subscribe to your default set of subscrip-
  933.      tions.  If you use znol, then _z_n_o_l -_q & will restore the
  934.      subscriptions you need for _z_n_o_l.
  935.  
  936.      Portions of the text of a message may be selected for "past-
  937.      ing" into other X applications by using the shift key in
  938.      cooperation with the pointer buttons.  Holding the Shift key
  939.      while depressing Button1 (usually the left button) will set
  940.      a marker at the text under the pointer.  Dragging the
  941.      pointer with Shift-Button1 still depressed extends the
  942.      selection from the start point, until the button is
  943.      released.  The end of the selection may also be indicated by
  944.      releasing Button1, holding down the Shift key, and pressing
  945.      Button3 (usually the right button) at the desired endpoint
  946.      of the selection.  The selection will appear with the text
  947.      and background colors reversed.
  948.  
  949.  
  950. CCOOMMMMAANNDD LLIINNEE
  951.      _z_w_g_c is normally invoked from /_u_s_r/_a_t_h_e_n_a/_l_i_b/_i_n_i_t/_l_o_g_i_n,
  952.      $_H_O_M_E/._x_s_e_s_s_i_o_n, or /_u_s_r/_a_t_h_e_n_a/_l_i_b/_i_n_i_t/_x_s_e_s_s_i_o_n in the
  953.      foreground and with no arguments. When it has successfully
  954.      set your location, it will put itself into the background
  955.      (unless the -nofork option has been specified). At this
  956.      point it is safe to invoke additional zephyr commands, such
  957.      as _z_n_o_l(1).  (You can also put these commands in the
  958.      _i_n_i_t_p_r_o_g_s Zephyr variable; the value of this variable is
  959.      passed as the argument to the _s_y_s_t_e_m(3) library call during
  960.      initialization.) _z_w_g_c will exit with an exit status of 0 if
  961.      it was able to open the X display successfully or 1 if it
  962.      couldn't open the display and the Zephyr variable _f_a_l_l_b_a_c_k
  963.      was set to ``false''. If _f_a_l_l_b_a_c_k is set to ``true'', _z_w_g_c
  964.      will fall back to ``ttymode'' (making the tty driver the
  965.      default output device) if it can't open the X display.  If
  966.      _f_a_l_l_b_a_c_k is not set and the display cannot be opened, _z_w_g_c
  967.      prints an explanatory message and exits with a status of 1.
  968.  
  969.      If the -_t_t_y_m_o_d_e option is specified, _z_w_g_c will ignore any X
  970.      display and use the terminal as its primary output device.
  971.      This flag overrides any setting of the fallback variable.
  972.  
  973.      The -_r_e_e_n_t_e_r option is provided for compatibility with the
  974.      previous version of _z_w_g_c.
  975.  
  976.      _z_w_g_c will exit cleanly (unset location and cancel subscrip-
  977.      tions) on:
  978.           SIGTERM
  979.           SIGHUP
  980.           XIOError (with a message to stderr)
  981.      SIGHUP is what it expects to get upon logout.  Also, the
  982.      signals SIGINT, SIGQUIT, and SIGTSTP are ignored because
  983.      they can be sent inadvertently, and bizarre side-effects can
  984.  
  985.  
  986.  
  987. MIT Project Athena      November 30, 1989                      15
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. ZWGC                      User Commands                      ZWGC
  995.  
  996.  
  997.  
  998.      result.  If you want them to be acted on, then run _z_w_g_c
  999.      -_n_o_f_o_r_k &
  1000.  
  1001.  
  1002. CCOONNTTRROOLL MMEESSSSAAGGEESS
  1003.      In order to allow some special user controls over the
  1004.      behavior of _z_w_g_c, certain Zephyr control notices can be sent
  1005.      directly to _z_w_g_c using the _z_c_t_l(1) program. Currently imple-
  1006.      mented controls are
  1007.  
  1008.      wg_read        tell _z_w_g_c to re-read the current description
  1009.                     file.
  1010.  
  1011.      wg_shutdown    tell _z_w_g_c to cancel all subscriptions and
  1012.                     stop acting on incoming notices. _z_w_g_c saves
  1013.                     the subscriptions that were in effect at the
  1014.                     time of the shutdown so that it can restore
  1015.                     them later if needed.
  1016.  
  1017.      wg_startup     tell _z_w_g_c to restart from being shutdown and
  1018.                     reinstall the saved subscriptions.
  1019.  
  1020.      Other control messages may be implemented in the future.
  1021.  
  1022.  
  1023. EEXXAAMMPPLLEESS
  1024.      For an example of a description file, see
  1025.      /_u_s_r/_a_t_h_e_n_a/_l_i_b/_z_e_p_h_y_r/_z_w_g_c._d_e_s_c.  For an example of X
  1026.      resources, see /_u_s_r/_a_t_h_e_n_a/_l_i_b/_z_e_p_h_y_r/_z_w_g_c__r_e_s_o_u_r_c_e_s.
  1027.  
  1028.  
  1029. BBUUGGSS
  1030.      The X selection code can highlight the wrong portions of
  1031.      messages containing formatted text placed with the @center()
  1032.      or @right() directives.
  1033.  
  1034.  
  1035. FFIILLEESS
  1036.      $HOME/.zwgc.desc
  1037.                     Default location of user's description file
  1038.      /usr/athena/lib/zephyr/zwgc.desc
  1039.                     System-wide description file
  1040.      /usr/athena/lib/zephyr/zwgc_resources
  1041.                     Default X application resources.
  1042.      $HOME/.zephyr.vars
  1043.                     File containing variable definitions
  1044.      $HOME/.zephyr.subs
  1045.                     Supplementary subscription file
  1046.      $HOME/.Xresources
  1047.                     Standard X resources file
  1048.      $WGFILE or /tmp/wg._u_i_d
  1049.                     File used to store WindowGram port number for
  1050.  
  1051.  
  1052.  
  1053. MIT Project Athena      November 30, 1989                      16
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060. ZWGC                      User Commands                      ZWGC
  1061.  
  1062.  
  1063.  
  1064.                     other clients
  1065.  
  1066. SSEEEE AALLSSOO
  1067.      csh(1), kinit(1), xrdb(1), zctl(1), zephyr(1), znol(1),
  1068.      X(1), getenv(3), system(3), termcap(5), zephyrd(8), zhm(8)
  1069.      Project Athena Technical Plan Section E.4.1, `Zephyr Notifi-
  1070.      cation Service'
  1071.  
  1072. AAUUTTHHOORRSS
  1073.      John Carr (MIT/Project Athena) <jfc@athena.mit.edu>
  1074.      Marc Horowitz (MIT/Project Athena) <marc@athena.mit.edu>
  1075.      Mark Lillibridge (MIT/Project Athena) <mdl@CS.CMU.EDU>
  1076.  
  1077. RREESSTTRRIICCTTIIOONNSS
  1078.      Copyright (c) 1989 by the Massachusetts Institute of Tech-
  1079.      nology.  All Rights Reserved.
  1080.      _z_e_p_h_y_r(_1) specifies the terms and conditions for redistribu-
  1081.      tion.
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119. MIT Project Athena      November 30, 1989                      17
  1120.  
  1121.  
  1122.  
  1123.